myde_total = $this->numeric($myde_total); $this->myde_size = $this->numeric($myde_size); $this->myde_page = $this->numeric($myde_page); $this->myde_page_count = ceil($this->myde_total / $this->myde_size); $this->myde_url = $myde_url; if ($this->myde_total < 0) $this->myde_total = 0; if ($this->myde_page < 1) $this->myde_page = 1; if ($this->myde_page_count < 1) $this->myde_page_count = 1; if ($this->myde_page > $this->myde_page_count) $this->myde_page = $this->myde_page_count; $this->limit = ($this->myde_page - 1) * $this->myde_size; $this->myde_i = $this->myde_page - $show_pages; $this->myde_en = $this->myde_page + $show_pages; if ($this->myde_i < 1) { $this->myde_en = $this->myde_en + (1 - $this->myde_i); $this->myde_i = 1; } if ($this->myde_en > $this->myde_page_count) { $this->myde_i = $this->myde_i - ($this->myde_en - $this->myde_page_count); $this->myde_en = $this->myde_page_count; } if ($this->myde_i < 1) $this->myde_i = 1; } //检测是否为数字 private function numeric($num) { if (strlen($num)) { if (!preg_match("/^[0-9]+$/", $num)) { $num = 1; } else { $num = substr($num, 0, 11); } } else { $num = 1; } return $num; } //地址替换 private function page_replace($page) { return str_replace("{page}", $page, $this->myde_url); } //首页 private function myde_home() { if ($this->myde_page != 1) { return "首页"; } else { return "首页
"; } } //上一页 private function myde_prev() { if ($this->myde_page != 1) { return "上一页"; } else { return "上一页
"; } } //下一页 private function myde_next() { if ($this->myde_page != $this->myde_page_count) { return "下一页"; } else { return"下一页
"; } } //尾页 private function myde_last() { if ($this->myde_page != $this->myde_page_count) { return "尾页"; } else { return "尾页
"; } } //输出 public function myde_write($id = 'page') { $str = ""; $str.=$this->myde_home(); $str.=$this->myde_prev(); if ($this->myde_i > 1) { $str.=""; return $str; }}?>...
"; } for ($i = $this->myde_i; $i <= $this->myde_en; $i++) { if ($i == $this->myde_page) { $str.=" $i"; } else { $str.=" $i"; } } if ($this->myde_en < $this->myde_page_count) { $str.="...
"; } $str.=$this->myde_next(); $str.=$this->myde_last(); $str.="共" . $this->myde_page_count . "页" . $this->myde_total . "条数据
"; $str.="
PHP
include_once("config.php"); require_once('page.class.php'); //分页类 $showrow = 10; //一页显示的行数 $curpage = empty($_GET['page']) ? 1 : $_GET['page']; //当前的页,还应该处理非数字的情况 $url = "?page={page}"; //分页地址,如果有检索条件 ="?page={page}&q=".$_GET['q'] //省略了链接mysql的代码,测试时自行添加 $sql = "SELECT id,content,addtime FROM wishing_wall"; $total = mysql_num_rows(mysql_query($sql)); //记录总条数 if (!empty($_GET['page']) && $total != 0 && $curpage > ceil($total / $showrow)) $curpage = ceil($total_rows / $showrow); //当前页数大于最后页数,取最后一页 //获取数据 $sql .= " LIMIT " . ($curpage - 1) * $showrow . ",$showrow;"; $query = mysql_query($sql);
分页数据显示
显示分页条
$showrow) { //总记录数大于每页显示数,显示分页 $page = new page($total, $showrow, $curpage, $url, 2); echo $page->myde_write(); } ?>
#创建数据库名:democreate table wishing_wall( id INT NOT NULL AUTO_INCREMENT, content VARCHAR(100), addtime timestamp not null default current_timestamp, PRIMARY KEY(id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;